1 Imports et configuration
library(ggplot2)
library(dplyr)
library(tidyr)
library(gt)
library(tibble)
library(patchwork)
library(FactoMineR)
library(factoextra)
library(ggtext)
library(micEcon)
library(micEconIndex)
library(micEconCES)
library(frontier)
library(ranger)
library(tuneRanger)
library(mlr)
library(rsample)
library(forcats)
library(performance)2 Description des données
Le jeu de données appleProdFr86 utilisé dans le papier d’économétrie de Ivaldi et al. (1996) comprend des données transversales de production de 140 producteurs de pommes français datant de l’année 1986.
apples <- readxl::read_excel("data/appleProdFr86.xlsx")| Colonnes | Description |
|---|---|
vCap |
Coûts associés au capital (foncier compris). |
vLab |
Coûts associés au travail (y compris la rémunération du travail familial non rémunéré). |
vMat |
Coûts des matières intermédiaires (plantations, engrais, pesticides, carburant, etc). |
qApples |
Indice de quantité des pommes produites. |
qOtherOut |
Indice de quantité de tous les autres outputs. |
qOut |
Indice de quantité de toute la production \(\Rightarrow 580000 \cdot (\text{qApples} + \text{qOtherOut})\) |
pCap |
Indice des prix du capital. |
pLab |
Indice des prix du travail. |
pMat |
Indice des prix des matières intermédiaires. |
pOut |
Indice des prix de la production globale. |
adv |
Distingue les producteurs qui sont conseillés par des laboratoires d’agronomie. |
2.1 Tableau descriptif
Ce tableau descriptif retrace les 10 premières observations et l’ensemble des variables associées dans le dataset.
| Producteurs de pommes 🍎 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 140 producteurs 🇫🇷 (1986) | ||||||||||||||
| \(N\) | Costs | Quantity Index | Price Index | \(adv\) | Factor Quantities | |||||||||
| \(v_{Cap}\) | \(v_{Lab}\) | \(v_{Mat}\) | \(q_{Apples}\) | \(q_{OtherOut}\) | \(q_{Out}\) | \(p_{Cap}\) | \(p_{Lab}\) | \(p_{Mat}\) | \(p_{Out}\) | \(q_{Cap}\) | \(q_{Lab}\) | \(q_{Mat}\) | ||
| 1 | 220K | 320K | 300K | 1.4 | 0.98 | 1.4M | 2.6 | 0.90 | 8.9 | 0.66 | 84K | 360K | 34K | |
| 2 | 130K | 190K | 260K | 0.86 | 1.1 | 1.1M | 3.3 | 0.75 | 6.4 | 0.72 | 40K | 250K | 41K | |
| 3 | 81K | 130K | 91K | 3.3 | 0.40 | 2.2M | 2.2 | 0.96 | 3.7 | 0.94 | 37K | 140K | 24K | |
| 4 | 34K | 110K | 60K | 0.44 | 0.44 | 510K | 1.6 | 1.3 | 3.2 | 0.60 | 21K | 83K | 19K | |
| 5 | 39K | 84K | 100K | 1.8 | 0.015 | 1.1M | 0.87 | 0.94 | 7.2 | 0.83 | 45K | 89K | 14K | |
| 6 | 120K | 520K | 580K | 8.5 | 0.43 | 5.2M | 1.0 | 0.96 | 9.6 | 1.4 | 120K | 550K | 60K | |
| 7 | 89K | 170K | 340K | 4.1 | 3.3 | 4.3M | 0.98 | 1.0 | 7.8 | 1.3 | 91K | 170K | 44K | |
| 8 | 92K | 200K | 130K | 2.2 | 1.1 | 1.9M | 1.0 | 0.92 | 5.0 | 0.62 | 89K | 220K | 25K | |
| 9 | 66K | 180K | 190K | 1.8 | 2.6 | 2.5M | 2.5 | 1.0 | 5.6 | 1.9 | 27K | 180K | 34K | |
| 10 | 94K | 140K | 82K | 1.6 | 0.45 | 1.2M | 0.98 | 0.64 | 5.6 | 0.49 | 95K | 220K | 15K | |
Source: Ivaldi et al. (1996) |
||||||||||||||
3 Statistiques descriptives
3.1 Productivité moyenne des facteurs de production
La productivité moyenne (\(AP =\) Average Product) consiste à diviser la quantité totale d’output par la quantité totale de facteur utilisé (input) dans le processus de production.
Imaginons que les unités d’output sont des tonnes. Pour chaque input, cela revient en fait à expliquer combien de tonnes sont produites en moyenne par unité de capital, de travail et de matières intermédiaires en 1986 pour chaque producteur de pommes.
Nous obtenons alors respectivement :
\(AP_{Cap} = \frac{q_{Out}}{q_{Cap}}\)
\(AP_{Lab} = \frac{q_{Out}}{q_{Lab}}\)
\(AP_{Mat} = \frac{q_{Out}}{q_{Mat}}\)
apples <- apples |> mutate(
AP_Cap = qOut / qCap,
AP_Lab = qOut / qLab,
AP_Mat = qOut / qMat
)| Productivité Moyenne par Facteur 📋 | ||||
|---|---|---|---|---|
| Capital — Travail — Matériaux | ||||
| \(\min\) | \(\mu\) | \(\max\) | \(\sigma^2\) | |
\(AP_{Cap}\) |
1.45 | 32.64 | 152.87 | 29.25 |
\(AP_{Lab}\) |
0.86 | 10.21 | 25.63 | 6.20 |
\(AP_{Mat}\) |
8.22 | 90.64 | 301.43 | 60.43 |
Ce tableau, en plus des visualisations qui vont suivre, permet d’établir que les productivités moyennes par facteur sont très différentes selon les producteurs. De plus, on s’aperçoit aussi qu’investir dans un facteur particulier peut être plus intéressant qu’un autre.
C’est particulièrement vrai pour le facteur Mat avec une productivité moyenne minimale de 8.22 unités d’output pour une unité de matériaux et jusqu’à 301.43 unités d’output pour une unité de matériaux.
3.2 Corrélations entre les quantités des 3 facteurs de production
| Matrice de corrélation | |||
|---|---|---|---|
| \(q_{Cap}\) | \(q_{Lab}\) | \(q_{Mat}\) | |
\(q_{Cap}\) |
1.00 | 0.59 | 0.66 |
\(q_{Lab}\) |
0.59 | 1.00 | 0.79 |
\(q_{Mat}\) |
0.66 | 0.79 | 1.00 |
Les quantités des 3 facteurs de production sont toutes corrélées positivement.
On s’aperçoit que la corrélation positive la plus importante est entre \(q_{Lab}\) et \(q_{Mat}\) \(\Rightarrow\) cela implique que lorsque la quantité de travail augmente, la quantité de matériaux a tendance à augmenter dans un niveau très similaire, et vice versa.
3.3 Corrélations entre les productivités moyennes
Essayons maintenant de comprendre comment les productivités moyennes individuelles sont corrélées :
| Matrice de corrélation | |||
|---|---|---|---|
| \(AP_{Cap}\) | \(AP_{Lab}\) | \(AP_{Mat}\) | |
\(AP_{Cap}\) |
1.00 | 0.51 | 0.46 |
\(AP_{Lab}\) |
0.51 | 1.00 | 0.73 |
\(AP_{Mat}\) |
0.46 | 0.73 | 1.00 |
Ces résultats nous suggèrent l’existence de relations positives entre les productivités moyennes des différents facteurs de production dans le processus de production.
Ici, une augmentation de la productivité moyenne du travail peut être associée à une augmentation significative de la productivité moyenne des matériaux, ce qui peut être dû à des facteurs tels que des processus de production plus efficaces ou une meilleure utilisation des ressources de la part du producteur de pommes.
Les représentations des productivités moyennes \(AP_{Cap}\), \(AP_{Lab}\) et \(AP_{Mat}\) par rapport à l’output \(q_{Out}\) peuvent aussi être très utiles pour comprendre les relations entre la production totale et l’utilisation des différents facteurs de production.
- Les valeurs extrêmes dans ces nuages de points nous permettent de distinguer aisément les producteurs efficaces et inefficaces dans l’utilisation des ressources.
3.4 Indices de Paasche, Laspeyres et Fisher
Les productivités moyennes nous donnent une indication facteur par facteur, mais elles ne nous donnent pas nécessairement d’information globale. Dans ce cadre, on peut alors se demander comment agréger des quantités avec une règle ad hoc en un indice synthétique.
3 Indices principaux existent
\[ \text{Paasche}_{index} = \frac{(v_{Cap} + v_{Lab} + v_{Mat})}{{\bar{q}_{Cap}}\cdot p_{Cap} + \bar{q}_{Lab}\cdot p_{Lab} + \bar{q}_{Mat} \cdot p_{Mat}} \]
\[ \text{Laspeyres}_{index} = \frac{(q_{Cap} \cdot \bar{p}_{Cap} + q_{Lab} \cdot \bar{p}_{Lab} + q_{Mat} \cdot \bar{p}_{Mat})}{(\bar{q}_{Cap}\cdot \bar{p}_{Cap}+\bar{q}_{Lab}\cdot \bar{p}_{Lab}+\bar{q}_{Mat}\cdot \bar{p}_{Mat})} \]
\[ \text{Fisher}_{index} = \sqrt{\text{Paasche}_{index} \cdot \text{Laspeyres}_{index}} \]
De plus, la fonction quantityIndex du package micEconIndex a l’intérêt de facilement intégrer les calculs de chaque indice (Voir ci-dessous).
apples <- apples |> mutate(
L_Index = quantityIndex(
prices = c("pCap", "pLab", "pMat"),
quantities = c("qCap", "qLab", "qMat"),
data = apples,
method = "Laspeyres"
),
P_Index = quantityIndex(
prices = c("pCap", "pLab", "pMat"),
quantities = c("qCap", "qLab", "qMat"),
data = apples,
method = "Paasche"
),
F_Index = quantityIndex(
prices = c("pCap", "pLab", "pMat"),
quantities = c("qCap", "qLab", "qMat"),
data = apples,
method = "Fisher"
)
)D’après cette visualisation on peut conclure que faire le choix de l’indice de Paasche ou de Laspeyres revient sensiblement à la même interprétation.
Note : Etant donné que l’indice de Fisher est une moyenne géométrique des deux indices, il n’est pas non plus nécessaire de le représenter puisque la relation linéaire entre les deux indices sera presque parfaite dans ce cas.
| Matrice de corrélation | ||||
|---|---|---|---|---|
| \(AP_{Cap}\) | \(AP_{Lab}\) | \(AP_{Mat}\) | \(\text{Fisher}_{index}\) | |
\(AP_{Cap}\) |
1.00 | 0.51 | 0.46 | 0.11 |
\(AP_{Lab}\) |
0.51 | 1.00 | 0.73 | 0.36 |
\(AP_{Mat}\) |
0.46 | 0.73 | 1.00 | 0.23 |
\(\text{Fisher}_{index}\) |
0.11 | 0.36 | 0.23 | 1.00 |
- Ces résultats suggèrent que l’indice de Fisher n’est pas fortement corrélé avec les productivités moyennes individuelles des facteurs de production.
3.5 Productivité globale des facteurs
- Dans la section précédente, nous avons montré que les indices donnaient sensiblement les mêmes résultats. Nous avons néanmoins choisi en tant qu’indice de productivité globale des facteurs l’indice de Fisher, étant donné qu’il est une moyenne géométrique de l’indice de Paasche et de celui de Laspeyres.
- De manière intéressante, contrairement aux histogrammes des productivités moyennes de la Section 3.1, la plupart des valeurs que prend l’indice de Fisher sont plus concentrées.
La variable dichotomique adv présente dans notre dataset est définie par :
\[ adv = \begin{cases} 0 \text{ si le producteur n'est pas conseillé}\\ 1 \text{ si le producteur est conseillé} \end{cases} \]
On pourrait penser que les producteurs qui ont été conseillés par des laboratoires d’agronomie ont un indice de productivité globale plus important que ceux qui ne l’ont pas été.
Vérifions-le graphiquement et statistiquement
- En moyenne, il semble ne pas y avoir de différence de productivité globale lorsque le producteur est conseillé. En effet, la productivité moyenne avec conseil est égale à 0.95 tandis que la productivité moyenne sans conseil est quant à elle égale à 1.
On peut aussi s’assurer que les moyennes sont significativement différentes en faisant un test de Student bilatéral :
\[ \begin{cases} H_0:\mu_{advice} =\mu_{no\_advice}\\ H_1:\mu_{advice} \neq\mu_{no\_advice} \end{cases} \]
\(\Rightarrow\) Au risque \(\alpha = 5\%\), la \(p-value =\) 0.64 \(> 0.05\), on conserve donc l’hypothèse nulle \(H_0\), c’est à dire qu’il n’y a pas de différence significative dans les productivités globales quand le producteur est conseillé/ qu’il ne l’est pas.
4 Analyse exploratoire
Axe 1 \(\Rightarrow\) Combinaison de variables : synthéthise les indices de Fisher, Paasche et Laspeyres, ainsi que les quantités et les coûts des 3 facteurs de production.
Axe 2 \(\Rightarrow\) Productivités moyennes.
TODO : Customiser les couleurs de contributions et des inerties et tout
Lorsque l’on s’intéresse à la distribution de qOut et que l’on met ces valeurs en logarithme, on remarque une distribution proche d’une loi normale. Cette observation est confirmée par le test de Shapiro effectué ci-dessous.
\[ \begin{cases} H_0: log(qOut)\text{ normalement distribuée} \\ H_1:log(qOut)\text{ n'est pas normalement distribuée} \end{cases} \]
Code
pval_shap_test <- shapiro.test(log(apples$qOut))$p.valueLe test de normalité confirme statistiquement le fait que les données
log(qOut)suivent une distribution normale (p.value = 0.11 > 0.05), \(H_O\) n’est pas rejeté.
5 Fonctions de production
5.1 Fonction de production linéaire
\[ q_i = \alpha + \sum_{k=1}^3\beta_k x_{ik} + ε_i \]
- La fonction de production linéaire dans notre cas s’écrit donc sous la forme :
\[ q_{Out} = \alpha + \beta_1 q_{Cap} + \beta_2 q_{Lab} + \beta_3 q_{Mat} + ε_i \]
On a pu constater un lien indéniable entre la quantité produite (qOut) et les productivités moyennes. On peut alors légitimement penser qu’il existe une relation entre la quantité produite et les quantités des facteurs de production.
Avant de s’aventurer dans des formes fonctionnelles plus complexes, commençons par utiliser une simple fonction de production linéaire.
linreg_prod <- lm(qOut ~ qCap + qLab + qMat, data = apples)| Fonction de production linéaire | |||||
|---|---|---|---|---|---|
| Variable dépendante : qOut | |||||
| Description | Coefficients | Ecart Type | Pvalues | Significativité | |
\(\alpha\) |
|
−1,615,978.639 | +/- 231771.709 | 0 | \(***\) |
\(\beta_1\) |
|
1.788 | +/- 1.995 | 0.372 | |
\(\beta_2\) |
|
11.831 | +/- 1.272 | 0 | \(***\) |
\(\beta_3\) |
|
46.668 | +/- 11.234 | 0 | \(***\) |
| Observations : 140 | |||||
| \(R^2=\) 0.787 | |||||
| \(R^2_{adj}=\) 0.782 | |||||
Le coefficient associé à
qCapest de 1.788, mais il n’est pas statistiquement significatif, ce qui suggère que la quantité de capital n’a pas une influence significative sur la production totale.Le coefficient associé à
qLabest de 11.831 avec un niveau de significativité très élevé, ce qui signifie que pour chaque unité supplémentaire de travail utilisée, la production totale augmente en moyenne de 11.831 unités. Cela revèle une fois de plus l’influence importante de la quantité de travail sur la quantité d’output.Le coefficient associé à
qMatest de 46.668 avec un niveau de significativité très élevé, ce qui indique que pour chaque unité supplémentaire de matériaux utilisés, la production totale augmente en moyenne de 46.668 unités.
\(R^2_{adj}=\) 0.782 donc 78.2% de la variance de la production totale est expliquée par la variance des variables explicatives.
5.1.1 Hétéroscédasticité
Les résidus sont-ils normalement distribués ?
TODO : Continuer la partie sur l’hétéroscédasticité
Code
# performance::check_normality(linreg_prod)
# qqnorm(residuals |> pull())
# qqline(residuals |> pull())
# à changer en ggplot2 ici5.1.2 Spécification de la forme fonctionnelle
On peut utiliser un RESET test pour vérifier si la forme fonctionnelle linéaire est la bonne spécification.
\[ \begin{cases} H_0 : \text{La relation entre la variable a predire et un ou plusieurs predicteurs est lineaire} \\ H_1 : \text{La relation entre la variable a predire et un ou plusieurs predicteurs est quadratique} \end{cases} \]
\(\Rightarrow\) la \(p-value\) issue du test est \(< 0.05\), on rejette donc l’hypothèse nulle \(H_0\), c’est à dire qu’on va préférer prendre une forme fonctionnelle incluant des effets quadratiques.
Warning: Maximum value of original data is not included in the
replicated data.
Model may not capture the variation of the data.
Malgré un \(R^2_{adj}\) proche de 0.8, ce qui signifie que le modèle a plutôt un bon ajustement, la spécification linéaire possède plusieurs problèmes :
- Les rendements d’échelle sont fixés comme constants dans la forme fonctionnelle.
- Elle ne permet pas d’évaluer les possibilités de substitution entre les trois facteurs de production.
\(\Rightarrow\) Face à ces inconvénients du modèle linéaire, la fonction Cobb-Douglas permet de fournir une réponse au point (1).
5.2 Fonction de production Cobb-Douglas
\[ q_i = A \prod_{k=1}^3 x_{ik}^{a_k}ε_i \]
- La fonction de production Cobb-Douglas dans notre cas s’écrit donc sous la forme :
\[ q_{Out} = A\cdot q_{Cap}^\alpha \cdot q_{Lab}^\beta \cdot q_{Mat}^\gamma \cdot ε_i \]
On peut aussi facilement linéariser la fonction pour pouvoir la préparer à une procédure lm, dès lors on obtient :
\[ \ln(q_{out}) = \ln(A) + \alpha \cdot \ln(q_{Cap}) + \beta \cdot \ln(q_{Lab}) + \gamma \cdot \ln(q_{Mat}) + \ln{(ε_i)} \]
Le package micEcon propose néanmoins l’estimation d’une fonction de production Cobb-Douglas grâce à la fonction translogEst et l’argument linear = TRUE1.
cd_prod <- translogEst(
"qOut",
c("qCap", "qLab", "qMat"),
data = apples,
linear = TRUE
)| Fonction de production Cobb-Douglas | |||||
|---|---|---|---|---|---|
| Variable dépendante : qOut | |||||
| Description | Coefficients | Ecart Type | Pvalues | Significativité | |
\(A\) |
|
−2.064 | +/- 1.313 | 0.118 | |
\(\alpha\) |
|
0.163 | +/- 0.087 | 0.064 | \(*\) |
\(\beta\) |
|
0.676 | +/- 0.154 | 0 | \(***\) |
\(\gamma\) |
|
0.627 | +/- 0.126 | 0 | \(***\) |
| Observations : 140 | |||||
| \(R^2=\) 0.594 | |||||
| \(R^2_{adj}=\) 0.585 | |||||
Dans le cadre de cette régression, étant donné que le modèle est sous forme \(\log-\log\), on peut interpréter les 3 coefficients comme des élasticités partielles :
\(\alpha \Rightarrow\) Un changement d’un pourcent de
qCapinduit un changement de 0.163% deqOut, ceteris paribus.\(\beta \Rightarrow\) Un changement d’un pourcent de
qLabinduit un changement de 0.676% deqOut, ceteris paribus.\(\gamma \Rightarrow\) Un changement d’un pourcent de
qMatinduit un changement de 0.627% deqOut, ceteris paribus.
Note : les coefficients sont significatifs au seuil de 10% pour
qCap, 1% pourqLabet 1% pourqMat.
- On remarque aussi que la qualité d’ajustement du modèle a diminué de près de 20% puisque le \(R^2_{adj}=\) 0.585.
Code
check_posterior_predictions(cd_prod_2)5.2.1 Rendements d’échelle
On l’a vu ci-dessus, les exposants \(\alpha\), \(\beta\) et \(\gamma\) sont les élasticités de la production, c’est-à-dire qu’ils mesurent respectivement le changement en pourcentage de l’output aux variations en pourcentage de la quantité de capital, de la quantité de travail et de la quantité de matériaux.
- Grâce à ces coefficients estimés, on peut déterminer les rendements d’échelle.
Décroissants si \(\hat{\alpha} + \hat{\beta} + \hat{\gamma} < 1\)
Constants si \(\hat{\alpha} + \hat{\beta} + \hat{\gamma} = 1\)
Croissants si \(\hat{\alpha} + \hat{\beta} + \hat{\gamma} > 1\)
alpha <- cd_prod$coef[2] |> unname()
beta <- cd_prod$coef[3] |> unname()
gamma <- cd_prod$coef[4] |> unname()
return_to_scale <- alpha + beta + gammaOn trouve donc que \(\hat{\alpha} + \hat{\beta} + \hat{\gamma} =\) 1.47, donc les rendements d’échelles sont croissants, c’est à dire que le processus de production est considéré comme particulièrement efficace et présente des économies d’échelle.
Ces rendements d’échelle croissants sont souvent le résultat de coûts fixes élevés (voir la Section 2.1 pour s’en convaincre).
Une implication de ce résultat est que des installations de production à grande échelle ont tendance à être plus efficaces que des installations à petite échelle.
Intéressons-nous à l’élasticité de substitution, qui mesure la facilité avec laquelle un input peut être substitué par un autre.
Si l’elasticité de substitution n’est pas empiriquement estimable pour la Cobb-Douglas, celle-ci suppose implicitement que l’élasticité de substitution de Allen est égale à un, soit \(\sigma_{\{\text{qCap, qLab, qMat}\}} = 1\).
Cela implique une substitution parfaite entre les facteurs de production \(q_{Cap}\), \(q_{Lab}\) et \(q_{Mat}\), ce qui va clairement à l’encontre des résultats de la Section 3.1.
On ne peut donc pas étudier les substitutions entre les facteurs de production car la Cobb-Douglas ne permet tout simplement pas de le faire !
5.2.2 Productivité marginale des inputs
La productivité marginale se réfère à la variation de la production totale résultant d’une petite variation d’un facteur de production spécifique, toutes choses égales par ailleurs.
En d’autres termes, il s’agit de la quantité supplémentaire d’output qu’une entreprise peut produire en utilisant une unité supplémentaire d’un facteur de production donné, tout en maintenant constantes les quantités des autres facteurs de production.
Nous obtenons alors respectivement :
\(MP_{Cap} = \frac{\partial q_{Out}}{\partial q_{Cap}}\)
\(MP_{Lab} = \frac{\partial q_{Out}}{\partial q_{Lab}}\)
\(MP_{Mat} = \frac{\partial q_{Out}}{\partial q_{Mat}}\)
On peut facilement calculer ces productivités marginales avec la fonction cobbDouglasDeriv.
cd_prod_margProducts <- cobbDouglasDeriv(
c("qCap", "qLab", "qMat"),
data = apples, coef = coef(cd_prod)[1:4],
coefCov = vcov(cd_prod)[1:4, 1:4]
)Cobb-Douglas- Par exemple, pour le producteur 1 :
- L’augmentation d’une unité de capital tout en maintenant constant le niveau de travail et de matériaux entraînera une augmentation de 6.23 unités d’output.
- L’augmentation d’une unité de travail tout en maintenant constant le niveau de capital et de matériaux entrainera une augmentation de 6.03 unités d’output.
- L’augmentation d’une unité de matériaux tout en maintenant constant le niveau de travail et de capital entrainera une augmentation de 59.09 unités d’output.
On remarque dans ce modèle que la productivité marginale des matériaux est supérieure à celle du capital et du travail pour tous les producteurs. De plus, aucune productivité marginale n’est négative.
5.3 Fonction de production quadratique
\[ q_i = \alpha + \sum_{k=1}^3\beta_k x_{ik} + \frac{1}{2}\sum_{l=1}^3\sum_{k=1}^3 \beta_{kl}x_{ik}x_{il} + ε_i \]
- La fonction de production quadratique dans notre cas s’écrit donc sous la forme :
\[ \begin{gathered}q_{Out}=α+β_1q_{Cap}+β_2q_{Lab}+β_3q_{Mat}\\ +\frac{1}{2}(β_{11}q^2_{Cap}+β_{22}q^2_{Lab}+β_{33}q^2_{Mat})\\ +β_{12}q_{Cap}q_{Lab}+β_{13}q_{Cap}q_{Mat}+β_{23}q_{Lab}q_{Mat}+ε_i \end{gathered} \]
✅ Avantages :
- La fonction de production quadratique va permettre d’ajouter des termes quadratiques et des effets d’interaction, rendant la modélisation plus robuste.
❌ Inconvénients :
- L’ajout de termes supplémentaires implique plus de complexité et de coefficients à estimer \((3^2 = 9)\).
quad_prod <- quadFuncEst(
"qOut",
c("qCap", "qLab", "qMat"),
data = apples
)| Fonction de production quadratique | |||||
|---|---|---|---|---|---|
| Variable dépendante : qOut | |||||
| Description | Coefficients | Ecart Type | Pvalues | Significativité | |
\(\alpha\) |
|
−291,113.132 | +/- 361461.083 | 0.422 | |
\(\beta_1\) |
|
5.27 | +/- 4.403 | 0.234 | |
\(\beta_2\) |
|
6.077 | +/- 3.185 | 0.059 | \(*\) |
\(\beta_3\) |
|
14.303 | +/- 24.057 | 0.553 | |
\(\beta_{11}\) |
|
0.00005 | +/- 0 | 0.176 | |
\(\beta_{12}\) |
|
−0.00003 | +/- 0 | 0.041 | \(**\) |
\(\beta_{13}\) |
|
−0.00004 | +/- 0 | 0.778 | |
\(\beta_{22}\) |
|
−0.00003 | +/- 0 | 0.141 | |
\(\beta_{23}\) |
|
0.0004 | +/- 0 | 0 | \(***\) |
\(\beta_{33}\) |
|
−0.002 | +/- 0.001 | 0.036 | \(**\) |
| Observations : 140 | |||||
| \(R^2=\) 0.845 | |||||
| \(R^2_{adj}=\) 0.834 | |||||
Le coefficient associé à
qCapest de 5.27, mais il n’est pas statistiquement significatif, ce qui suggère que la quantité de capital n’a pas une influence significative sur la production totale dans ce modèle.Le coefficient associé à
qLabest de 6.077 avec un niveau de significativité assez faible, ce qui signifie que pour chaque unité supplémentaire de travail utilisée, la production totale augmente en moyenne de 6.077 unités, toutes choses égales par ailleurs.Le coefficient associé à
qMatest de 14.303, mais il n’est pas statistiquement significatif, ce qui suggère que la quantité de matériaux n’a pas une influence significative sur la production totale dans ce modèle.Le coefficient associé à l’effet d’interaction entre les quantités de capital et de travail (
qCap×qLab) est négatif et significatif au seuil de 5%. Cela suggère que l’interaction entre ces 2 facteurs a un effet négatif sur la production.Le coefficient associé à l’effet d’interaction entre les quantités de tavail et de matériaux (
qLab×qMat) est positif et significatif au seuil de 1%. Cela suggère que l’interaction entre ces 2 facteurs a un effet positif sur la production.Enfin, le coefficient associé à l’effet quadratique des matériaux (
qMat²) est statistiquement significatif au seuil 5% et possède une valeur négative, ce qui suggère une courbe de rendement d’échelle décroissante pour les matériaux, indiquant que l’augmentation de la quantité de matériaux pourrait initialement augmenter la production, mais à un rythme décroissant.
\(R^2_{adj} =\) 0.834 donc 83.4% de la variance de la production totale est expliquée par la variance des variables explicatives. Ce résultat est meilleur que les fonctions de production linéaire et Cobb-Douglas.
5.3.1 Productivité marginale des inputs
quad_prod_margProducts <- quadFuncDeriv(
c("qCap", "qLab", "qMat"),
data = apples,
coef = coef(quad_prod),
coefCov = vcov(quad_prod)
)quadratique5.3.2 Elasticité de substitution des inputs
TODO : à confirmer ?
Code
# elasticities(quad_prod)5.4 Fonction de production Translog
\[ \begin{gathered} \ln(q_i) = \alpha + \sum_{k=1}^3\beta_k\ln(x_{ik})\\ + \frac{1}{2}\sum_{l=1}^3\sum_{k=1}^3 \beta_{kl}\ln(x_{ik})ln(x_{il}) + ε_i \end{gathered} \]
- La fonction de production Translog dans notre cas s’écrit donc sous la forme :
\[ \begin{gathered}\ln(q_{Out})=α+β_1 \ln(q_{Cap})+β_2 \ln(q_{Lab})+β_3 \ln(q_{Mat})\\ +\frac{1}{2}(β_{11}\ln(q^2_{Cap})+β_{22}\ln(q^2_{Lab})+β_{33}\ln(q^2_{Mat}))\\ +β_{12}\ln(q_{Cap}q_{Lab})+β_{13}\ln(q_{Cap}q_{Mat})+β_{23}\ln(q_{Lab}q_{Mat})+ε_i \end{gathered} \]
translog_prod <- translogEst(
"qOut",
c("qCap", "qLab", "qMat"),
data = apples
)| Fonction de production Translog | |||||
|---|---|---|---|---|---|
| Variable dépendante : qOut | |||||
| Description | Coefficients | Ecart Type | Pvalues | Significativité | |
\(A\) |
|
−4.146 | +/- 21.359 | 0.846 | |
\(\beta_1\) |
|
−2.307 | +/- 2.288 | 0.315 | |
\(\beta_2\) |
|
1.993 | +/- 4.566 | 0.663 | |
\(\beta_3\) |
|
2.232 | +/- 3.763 | 0.554 | |
\(\beta_{11}\) |
|
−0.026 | +/- 0.208 | 0.902 | |
\(\beta_{12}\) |
|
0.562 | +/- 0.291 | 0.056 | \(*\) |
\(\beta_{13}\) |
|
−0.41 | +/- 0.235 | 0.084 | \(*\) |
\(\beta_{22}\) |
|
−1.164 | +/- 0.679 | 0.089 | \(*\) |
\(\beta_{23}\) |
|
0.658 | +/- 0.428 | 0.126 | |
\(\beta_{33}\) |
|
−0.504 | +/- 0.435 | 0.249 | |
| Observations : 140 | |||||
| \(R^2=\) 0.63 | |||||
| \(R^2_{adj}=\) 0.604 | |||||
Code
# summary(translog_prod)
elasticities(translog_prod) qCap qLab qMat
1 0.312244656 0.344184605 0.743854110
2 0.052146407 0.466350244 0.720316910
3 -0.056260585 0.755881369 0.631636859
4 -0.232138356 0.884060544 0.643274622
5 -0.102900680 1.046640964 0.518229445
6 0.306640558 0.424505670 0.591714143
7 -0.226068351 1.450001500 0.076635013
8 0.167939712 0.727748341 0.562035987
9 -0.053019299 0.517749270 0.752564679
10 0.383508266 0.422644710 0.798817866
11 -0.375806005 1.415907835 0.221518710
12 0.041552220 1.017631509 0.336338120
13 0.249419754 0.246372112 0.961856423
14 0.059155834 0.850530133 0.484064056
15 -0.466303715 1.964187231 -0.223347859
16 0.374774465 0.100676770 0.942283730
17 -0.217710445 0.902906085 0.636497658
18 0.332597831 0.886626620 0.313303221
19 -0.140189910 1.657631584 0.099278722
20 0.402339884 0.179885162 0.945867159
21 0.301054756 1.006986632 0.269873888
22 0.276173551 0.448129125 0.679976045
23 0.508275352 -0.129465952 1.121869969
24 0.244280790 0.821236238 0.493146660
25 -0.062179401 0.998817744 0.412532235
26 0.051472678 0.291127281 0.870198124
27 0.001511066 0.736227359 0.635275440
28 0.189097977 0.774358281 0.461543509
29 0.068234297 0.552620295 0.807154012
30 0.137392245 0.574458934 0.728998303
31 0.060587087 0.904237667 0.477866712
32 0.230132851 -0.282987527 1.334641275
33 0.309606101 -0.009761929 1.138316131
34 0.309825348 0.368879967 0.793656630
35 0.320730735 0.577024405 0.628846990
36 -0.168809114 1.164262923 0.377783815
37 0.372350395 -0.014550068 1.205011159
38 0.461971671 -0.385262431 1.530682550
39 0.256343645 -0.195697484 1.353628634
40 0.271690054 0.837043621 0.576139495
41 0.176840428 0.396401814 0.824837886
42 0.357492212 0.420504690 0.784454155
43 0.178402947 0.718919368 0.639886242
44 0.127216167 0.676992810 0.712435958
45 0.074943802 1.111497427 0.418991532
46 -0.334786876 1.758716022 -0.068100448
47 0.308372928 0.469093443 0.849056617
48 -0.053247469 0.987854923 0.445501416
49 0.088990865 1.231612059 0.290922109
50 0.501370114 0.020652313 1.150418625
51 0.334224431 0.425860953 0.906490150
52 0.007337636 1.053817483 0.486551506
53 0.453754032 -0.048222226 1.230658302
54 -0.033362401 0.778547212 0.724399563
55 0.245609097 0.421301249 0.829557099
56 0.358773753 0.450227086 0.805013641
57 0.078462392 0.804088187 0.563247652
58 0.381753574 0.255341231 1.026098519
59 0.242310140 0.507900973 0.894146942
60 0.413949694 0.605556076 0.574381511
61 0.729668480 -1.025522170 1.901666513
62 0.039431539 0.721047805 0.664258290
63 0.078676901 1.432732127 -0.002307818
64 0.423452779 0.207543661 0.999601340
65 0.277879793 0.429510839 0.802692985
66 0.210974230 0.791517838 0.361117175
67 0.251712683 0.882142769 0.327224683
68 -0.120217840 1.414051455 0.090069559
69 0.424702266 0.187616735 0.759412968
70 -0.010608212 1.804860437 -0.377509335
71 0.150343116 0.670673048 0.704977817
72 0.097298127 0.995026565 0.497129729
73 0.264802849 0.247748901 0.986508939
74 0.410922671 -0.801306349 1.799049871
75 0.249014614 0.549322919 0.793246079
76 0.150853165 0.739789962 0.531168726
77 0.134331126 0.704206293 0.644038005
78 0.374666025 0.360678801 0.998068829
79 0.102933045 0.330982591 0.981173517
80 0.105316601 0.127278272 1.206264198
81 -0.221182858 1.481493891 0.221047981
82 -0.148420602 1.222287279 0.088738734
83 0.227230813 0.980849062 0.482306226
84 -0.010526463 1.656714329 -0.234539638
85 -0.053347351 1.376583435 0.072683089
86 0.151547118 1.152056318 0.145926879
87 0.097770449 0.962368274 0.415105918
88 0.188286882 0.632255080 0.684960952
89 -0.141646094 0.798017880 0.575923177
90 0.424893743 0.661599849 0.353325249
91 -0.180371408 1.589685034 0.002205754
92 0.011252133 1.253534024 0.212712498
93 0.173710605 0.625462906 0.542709007
94 0.464087262 0.252231294 0.688188554
95 -0.073820239 0.488331861 0.836623521
96 0.429367257 0.679869880 0.224577866
97 0.278630418 0.305662538 0.896195113
98 -0.093910780 1.395422755 0.129801678
99 -0.300580810 1.955731604 -0.334205953
100 -0.207148869 0.786757884 0.634924593
101 0.211525423 0.320203018 0.732157489
102 0.149721873 1.120174757 0.163919852
103 0.181604157 0.089684748 1.050258842
104 0.095320804 0.300209177 0.880280992
105 0.324263196 0.202876981 0.903038278
106 0.178019399 0.610278811 0.682384080
107 -0.399819151 1.483774552 0.085484359
108 0.364369982 0.022726228 1.185739794
109 -0.172398662 1.820142933 -0.301454223
110 0.363255488 0.376452523 0.689330028
111 0.091785912 1.041054584 0.359964054
112 -0.139327151 1.150128912 0.266384847
113 0.159062047 0.502165131 0.744214308
114 -0.164505964 1.412439999 0.150081950
115 0.100205306 1.048081469 0.445551961
116 0.394177967 -0.613193530 1.610188844
117 0.602897852 0.079091975 0.991388771
118 0.446617005 0.122684286 1.008156684
119 0.279648653 0.526780426 0.745086905
120 0.127186600 1.413703080 0.042091662
121 0.233038830 -0.331477838 1.375473664
122 0.253324013 0.549493703 0.731039544
123 0.128081444 0.584641831 0.725241528
124 -0.033547326 1.301009770 0.130910168
125 0.544378117 -0.290711618 1.173487218
126 0.259634108 -0.796007935 1.827520952
127 0.177657712 0.577471036 0.784457139
128 0.192702094 0.579201978 0.676537971
129 0.377869678 0.432652289 0.441024586
130 0.147097131 0.993119847 0.400238156
131 0.127297420 1.237243684 0.197716863
132 0.348603679 0.146508221 0.792313780
133 0.287586035 0.332913940 0.908778148
134 0.445226614 0.218723503 0.695302846
135 0.395431223 0.408727027 0.933908946
136 0.149359101 0.570958176 0.719518079
137 0.166360017 1.307714824 -0.024185008
138 0.340140165 0.410011703 0.773493914
139 0.249315697 -0.185498243 1.361710848
140 -0.139094958 1.245806874 0.202270414
Code
# couts marginaux de l'output d’une fonction de production translog.
margCost <- translogProdFuncMargCost(
yName = "qOut",
xNames = c("qCap", "qLab", "qMat"),
wNames = c("pCap", "pLab", "pMat"),
data = apples, coef = coef(translog_prod)
)
# si le cout marginal est négatif, alors il est plus avantageux de produire plus du coup.
# si le cout marginal est trop grand, alors le producteur n'a pas forcément interet à produire plus.
min(margCost)[1] -0.2589947
Code
mono <- translogCheckMono(
c("qCap", "qLab", "qMat"),
data = apples,
coef = coef(translog_prod),
increasing = TRUE
)
mono$increasing[1] TRUE TRUE TRUE
Code
mono$obs |>
as_tibble() |>
group_by(value) |>
summarise(n = n())# A tibble: 2 × 2
value n
<lgl> <int>
1 FALSE 48
2 TRUE 92
Cette fonction de production Translog augmente de manière monotone dans les facteurs de production qCap, qLab, qMat, dans 65,7% des observations
sur les 140 présentes sur 92 observations
Check whether the production function is quasiconcave
Code
translogCheckCurvature(
c("qCap", "qLab", "qMat"),
data = apples,
coef = coef(translog_prod),
convexity = FALSE,
quasi = TRUE
)This translog function is quasiconcave at 63 out of 140 observations (45%)
5.5 Machine Learning de production
À titre expérimental, il est envisageable d’explorer l’utilisation du Machine Learning pour étudier la production de pommes. Cependant, compte tenu du peu de données disponibles, cette approche n’est pas idéale. Nous envisageons néanmoins d’appliquer un algorithme de Random Forest. Ce modèle permet d’extraire l’importance des variables, offrant ainsi une certaine transparence dans le fonctionnement de ce modèle de Machine Learning souvent perçu comme une boîte noire.
Comme pour les fonction de production nous tentons d’expliquer la variable qOut à partir des variables qLab, qCap et qMat.
Code
apples_cut <- readxl::read_excel("data/appleProdFr86.xlsx")
apples_cut <- apples_cut[, -c(1:6, 8:12)]
split <- apples_cut |> initial_split(prop = 2 / 3)
df_train <- split |> training()
df_test <- split |> testing()Code
# task <- makeRegrTask(data = df_train, target = "qOut")
# Tuning
# estimateTimeTuneRanger(task)
# rf <- tuneRanger(task,
# tune.parameters = c("mtry", "min.node.size"),
# num.trees = 1000)
# Best model
# params <- rf$recommended.pars
best_model <- ranger(
formula = qOut ~ .,
data = df_train,
mtry = 1, # params$mtry,
min.node.size = 2, # params$min.node.size,
importance = "permutation"
)
# Prédiction
pred <- predict(best_model, data = df_test)$predictionsCode
metric_mae <- mean(abs(pred - df_test$qOut))
metric_r2 <- 1 - sum((pred - df_test$qOut)^2) / sum((mean(df_test$qOut) - df_test$qOut)^2)Le coefficient de détermination \(R^2\) associé à ce modèle de Random Forest est de 0.626, ce qui est similaire au score que nous avions obtenu précédemment.
Avec le graphique ci-dessous, nous pouvons comparer les valeurs prédites et les valeurs réelles. La ligne rouge en pointillés indique que lorsque les points se trouvent dessus, le modèle a fait une prédiction parfaite. Cependant, si un point est au-dessus (resp. en-dessous) de la ligne, cela signifie que le modèle a sous-estimé (resp. surestimé) qOut.
Code
ggplot() +
aes(x = pred, y = df_test$qOut) +
geom_point() +
geom_abline(intercept = 0, slope = 1, color = "red", linetype = "dashed") +
labs(x = "Prédiction", y = "Réalité", title = "Comparaison prédiction vs. réalité",
caption = "Auteurs : @Corentin DUCLOUX, @Guillaume DEVANT, 2024 ")Lorsque l’on examine l’importance des variables, on observe que la variable qLab exerce le plus grand impact dans le modèle Random Forest, tandis que la variable qCap a le moins d’influence. C’est très intéressant car la variable qLab est sytématiquement significative dans les modèles précédent.
Code
importance <- best_model$variable.importance |>
as.data.frame()
ggplot(
data = importance,
aes(
x = fct_reorder(
row.names(importance),
best_model$variable.importance
),
y = best_model$variable.importance
)
) +
geom_bar(stat = "identity", fill = "royalblue", alpha = 0.5, width = 0.3) +
labs(x = "Variables", y = "Importance", title = "Importance des variables",
caption = "Auteurs : @Corentin DUCLOUX, @Guillaume DEVANT, 2024 ") +
coord_flip()En résumé, dans notre contexte, le Machine Learning ne semble pas apporter une valeur ajoutée significative. Le modèle obtenu n’est pas plus performant que les modèles précédents, et nous perdons l’avantage de disposer de coefficients associés à chaque variable.
5.6 Fonction de production CES
\[ q_i = A \left(\sum^3_{i=1}\delta_k x_{ik}^{-\rho}\right)^{-\frac{1}{\rho}} \]
- La fonction de production CES dans notre cas s’écrit donc sous la forme :
\[ q_{Out} = A[\delta_1 q_{Cap}^{-\rho} + \delta_2 q_{Lab}^{-\rho} + \delta_3 q_{Mat}^{-\rho}]^{-\frac{1}{\rho}} \]
De part sa définition, la fonction CES est à rendements d’échelle constants.
ces_prod <- cesEst(
"qOut",
c("qCap", "qLab", "qMat"),
data = apples,
method = "SANN",
returnGrad = TRUE
)Code
summary(ces_prod)Estimated CES function with constant returns to scale
Call:
cesEst(yName = "qOut", xNames = c("qCap", "qLab", "qMat"), data = apples,
method = "SANN", returnGrad = TRUE)
Estimation by non-linear least-squares using the 'SANN' optimizer
assuming an additive error term
Coefficients:
Estimate Std. Error t value Pr(>|t|)
gamma 47.0814 29.9150 1.574 0.116
delta_1 -0.1065 0.5049 -0.211 0.833
delta 0.2907 0.5676 0.512 0.609
rho_1 -0.4062 4.5080 -0.090 0.928
rho -0.4484 1.3132 -0.341 0.733
Residual standard error: 1761478
Multiple R-squared: 0.7131632
Elasticities of Substitution:
Estimate Std. Error t value Pr(>|t|)
E_1_2 (HM) 1.684 12.786 0.132 0.895
E_(1,2)_3 (AU) 1.813 4.316 0.420 0.674
HM = Hicks-McFadden (direct) elasticity of substitution
AU = Allen-Uzawa (partial) elasticity of substitution
Code
aes_ces_prod <- round(ces_prod$ela[2], 2)
durbinWatsonTest(ces_prod) lag Autocorrelation D-W Statistic p-value
1 0.1388368 1.69504 0.118
Alternative hypothesis: rho != 0
L’élasticité de substitution est ici égale à 1.81. Celle-ci étant supérieure à 1, cela signifie que les 3 facteurs de productions qCap, qLab et qMat sont fortement substituables dans ce modèle. En d’autres termes, une augmentation du prix relatif d’un facteur (par exemple de qCap) entraînera une substitution vers un autre facteur (qLab ou qMat).
5.7 Fonction de production SFA
Dans le modèle SFA (Stochastic Frontier Analysis), on introduit un terme multiplicatif \(TE_i\). Ce terme représente l’efficacité technique, définie comme le ratio d’output observé sur l’output maximum réalisable, soit : \(TE_i = \frac{y_i}{y_i^*}\).
- On peut ré-écrire ce \(TE_i\) sous la forme \(\exp\left\{-u_i\right\}\).
Utiliser un tel modèle va donc nous permettre de pouvoir estimer l’efficacité technique producteur par producteur.
Note : Nous pouvons utiliser plusieurs formes fonctionnelles pour ce modèle, sous la contrainte que notre variable à prédire soit mise sous forme logarithmique, ce qui élimine de facto les modèles de production linéaire et quadratique.
\[ q_i = A\prod_{k=1}^3x_{ik}^{a_k}\cdot \underbrace{\exp\left\{-u_i\right\} \cdot \exp\left\{v_i\right\}}_{\varepsilon_i} \]
- La fonction de production SFA Cobb-Douglas dans notre cas s’écrit donc sous la forme :
\[ q_{Out} = A\cdot q_{Cap}^\alpha \cdot q_{Lab}^\beta \cdot q_{Mat}^\gamma \cdot \exp\left\{-u_i\right\} \cdot \exp\left\{v_i\right\} \]
En linéarisant on obtient :
\[ \ln(q_{out}) = \ln(A) + \alpha \cdot \ln(q_{Cap}) + \beta \cdot \ln(q_{Lab}) + \gamma \cdot \ln(q_{Mat}) + v_i - u_i \]
Code
cd_sfa <- sfa(log(qOut) ~ log(qCap) + log(qLab) + log(qMat), data = apples)
cd_sfa$olsParam # on retrouve les mêmes params que la cobb douglas ici(Intercept) log(qCap) log(qLab) log(qMat) sigmaSq
-2.0637688 0.1630268 0.6762184 0.6271972 0.4303949
Code
summary(cd_sfa)Error Components Frontier (see Battese & Coelli 1992)
Inefficiency decreases the endogenous variable (as in a production function)
The dependent variable is logged
Iterative ML estimation terminated after 12 iterations:
log likelihood values and parameters of two successive iterations
are within the tolerance limit
final maximum likelihood estimates
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.228813 1.247739 0.1834 0.8544981
log(qCap) 0.160934 0.081883 1.9654 0.0493668 *
log(qLab) 0.684777 0.146797 4.6648 3.089e-06 ***
log(qMat) 0.465871 0.131588 3.5404 0.0003996 ***
sigmaSq 1.000040 0.202456 4.9395 7.830e-07 ***
gamma 0.896664 0.070952 12.6375 < 2.2e-16 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
log likelihood value: -133.8893
cross-sectional data
total number of observations = 140
mean efficiency: 0.5379937
Code
lrtest(cd_sfa) # interprétation : la SFA c'est wallah mieux que la Cobb Douglas classique.Likelihood ratio test
Model 1: OLS (no inefficiency)
Model 2: Error Components Frontier (ECF)
#Df LogLik Df Chisq Pr(>Chisq)
1 5 -137.61
2 6 -133.89 1 7.4387 0.003192 **
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Code
# Note => Faire plus de tests de comparaison de modèles : translog vs cobb douglas, etc...
resettestFrontier(cd_sfa, power = 2)Likelihood ratio test
Model 1: cd_sfa
Model 2: cd_sfa + fit^2
#Df LogLik Df Chisq Pr(>Chisq)
1 6 -133.89
2 7 -133.71 1 0.3669 0.5447
Code
# notre modèle
effic <- efficiencies(cd_sfa)
effic |>
as_tibble() |>
summarise(
mean_eff = mean(efficiency),
min_eff = min(efficiency),
max_eff = max(efficiency)
)# A tibble: 1 × 3
mean_eff min_eff max_eff
<dbl> <dbl> <dbl>
1 0.538 0.102 0.875
\(LR = 2\cdot(\ln \mathcal{L}_1-\ln \mathcal{L}_2)\)
le resettest permet \(\Rightarrow\) de tester si des combinaisons non-linéaires des variables explicatives aident à expliquer the response variable.
The intuition behind the test is that if non-linear combinations of the explanatory variables have any power in explaining the response variable, the model is misspecified in the sense that the data generating process might be better approximated by a polynomial or another non-linear functional form.
6 Fonctions de coût
6.1 Fonction de coût Cobb-Douglas
\[ c_i = A \prod_{k=1}^{3} p_{ik}^{\alpha_k}q_i^{\alpha_y} \epsilon_i \]
Calculons d’abord le coût total des inputs, c’est à dire \(v_{Cap} + v_{Lab} + v_{Mat}\).
apples <- apples |> mutate(cost = vCap + vLab + vMat)Code
cobb_cost <- translogCostEst(
cName = "cost",
yName = "qOut",
pName = c("pCap", "pLab", "pMat"),
apples, homPrice = FALSE,
linear = TRUE
)Code
gtgazer(
cobb_cost,
n_coef = 4,
coefnames = c("$A$", "$\\alpha_1$", "$\\alpha_2$", "$\\alpha_3$", "$\\alpha_4$"),
description = c(
"- Constante du modèle",
"- Coefficient associé à la variable `qOut`",
"- Coefficient associé à la variable `pCap`",
"- Coefficient associé à la variable `pLab`",
"- Coefficient associé à la variable `pMat`"
),
title = "**Fonction de coût Cobb Douglass**",
bg_color = bg_color
)| Fonction de coût Cobb Douglass | |||||
|---|---|---|---|---|---|
| Variable dépendante : cost | |||||
| Description | Coefficients | Ecart Type | Pvalues | Significativité | |
\(A\) |
|
6.754 | +/- 0.407 | 0 | \(***\) |
\(\alpha_1\) |
|
0.373 | +/- 0.031 | 0 | \(***\) |
\(\alpha_2\) |
|
0.074 | +/- 0.049 | 0.13 | |
\(\alpha_3\) |
|
0.465 | +/- 0.147 | 0.002 | \(**\) |
\(\alpha_4\) |
|
0.486 | +/- 0.081 | 0 | \(***\) |
| Observations : 140 | |||||
| \(R^2=\) 0.688 | |||||
| \(R^2_{adj}=\) 0.679 | |||||
Le coefficient de
qOutest de 0.373. Cela signifie que si la variableqOutaugmente d’une unité, le coût augmente d’environ 0.373 unités, toutes choses étant égales par ailleurs.Le coefficient de
pLabest de 0.464. Cela indique qu’une augmentation d’une unité dans la variablepLabest associée à une augmentation d’environ 0.464 unités dans le coût, toutes choses étant égales par ailleurs.Le coefficient de
pMatest de 0.486. Il indique qu’une augmentation d’une unité dans la variablepMatest associée à une augmentation d’environ 0.486 unités dans le coût, toutes choses étant égales par ailleurs.
Seul le coefficient associé à la variable pCap n’est pas significatif, les autres le sont à 5 % et 10 % pour pLab.
6.2 Fonction de coût Cobb-Douglas de court terme
La fonction de court terme est définie par l’immutabilité d’au moins un facteur de production. Dans notre contexte, le capital est fixe, ce qui nous permet de la caractériser ainsi.
\[ c_i = A x_{i3}^{\alpha_4}\prod_{k=1}^{2} p_{ik}^{\alpha_k}q_i^{\alpha_y} \epsilon_i \]
Code
cobb_cost_ct <- translogCostEst(
cName = "cost",
yName = "qOut",
pName = c("pLab", "pMat"),
fNames = "qCap",
apples, homPrice = FALSE,
linear = TRUE
)Code
summary(cobb_cost_ct$est)
Call:
lm(formula = as.formula(estFormula), data = estData)
Residuals:
Min 1Q Median 3Q Max
-0.73566 -0.22981 0.00324 0.19866 0.62680
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 5.60308 0.40380 13.876 < 2e-16 ***
a_1 0.27881 0.03151 8.849 4.35e-15 ***
a_2 0.40165 0.13122 3.061 0.00266 **
a_3 0.41304 0.07326 5.638 9.66e-08 ***
a_4 0.23691 0.03830 6.185 6.91e-09 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 0.3023 on 135 degrees of freedom
Multiple R-squared: 0.753, Adjusted R-squared: 0.7457
F-statistic: 102.9 on 4 and 135 DF, p-value: < 2.2e-16
Code
gtgazer(
cobb_cost_ct,
n_coef = 4,
coefnames = c("$A$", "$\\alpha_1$", "$\\alpha_2$", "$\\alpha_3$", "$\\alpha_4$"),
description = c(
"- Constante du modèle",
"- Coefficient associé à la variable `qOut`",
"- Coefficient associé à la variable `pLab`",
"- Coefficient associé à la variable `pMat`",
"- Coefficient associé à la variable `qCap`"
),
title = "**Fonction de coût Cobb Douglass de court terme**",
bg_color = bg_color
)| Fonction de coût Cobb Douglass de court terme | |||||
|---|---|---|---|---|---|
| Variable dépendante : cost | |||||
| Description | Coefficients | Ecart Type | Pvalues | Significativité | |
\(A\) |
|
5.603 | +/- 0.404 | 0 | \(***\) |
\(\alpha_1\) |
|
0.279 | +/- 0.032 | 0 | \(***\) |
\(\alpha_2\) |
|
0.402 | +/- 0.131 | 0.003 | \(**\) |
\(\alpha_3\) |
|
0.413 | +/- 0.073 | 0 | \(***\) |
\(\alpha_4\) |
|
0.237 | +/- 0.038 | 0 | \(***\) |
| Observations : 140 | |||||
| \(R^2=\) 0.753 | |||||
| \(R^2_{adj}=\) 0.746 | |||||
6.3 Fonction de coût Translog
$$
Code
translog_cost <- translogCostEst(
cName = "cost",
yName = "qOut",
pName = c("pCap", "pLab", "pMat"),
apples, homPrice = FALSE
)Code
gtgazer(
translog_cost,
n_coef = 9,
coefnames = c("$\\alpha$",
"$\\beta_1$",
"$\\beta_2$",
"$\\beta_2$",
"$\\beta_4$",
"$\\beta_{11}$",
"$\\beta_{12}$",
"$\\beta_{13}$",
"$\\beta_{14}$",
"$\\beta_{22}$",
"$\\beta_{23}$",
"$\\beta_{24}$",
"$\\beta_{33}$",
"$\\beta_{34}$",
"$\\beta_{44}$"),
description = c(
"`Intercept`",
"`qOut`",
"`pCap`",
"`pLab`",
"`pMat`",
"`qOut²`",
"`qOut*pCap`",
"`qOut*pLab`",
"`qOut*pMat`",
"`pCap²`",
"`pCap*pLab`",
"`pCap*pMat`",
"`pLab²`",
"`pLab*pMat`",
"`pMat²`"
),
title = "**Fonction de coût Translog**",
bg_color = bg_color
)| Fonction de coût Translog | |||||
|---|---|---|---|---|---|
| Variable dépendante : cost | |||||
| Description | Coefficients | Ecart Type | Pvalues | Significativité | |
\(\alpha\) |
|
25.383 | +/- 3.511 | 0 | \(***\) |
\(\beta_1\) |
|
−2.04 | +/- 0.511 | 0 | \(***\) |
\(\beta_2\) |
|
0.199 | +/- 0.538 | 0.712 | |
\(\beta_2\) |
|
−0.025 | +/- 2.232 | 0.991 | |
\(\beta_4\) |
|
−1.245 | +/- 1.201 | 0.302 | |
\(\beta_{11}\) |
|
0.164 | +/- 0.041 | 0 | \(***\) |
\(\beta_{12}\) |
|
−0.028 | +/- 0.043 | 0.513 | |
\(\beta_{13}\) |
|
0.008 | +/- 0.171 | 0.965 | |
\(\beta_{14}\) |
|
0.049 | +/- 0.092 | 0.598 | |
\(\beta_{22}\) |
|
−0.095 | +/- 0.105 | 0.367 | |
\(\beta_{23}\) |
|
−0.746 | +/- 0.244 | 0.003 | \(**\) |
\(\beta_{24}\) |
|
0.182 | +/- 0.13 | 0.165 | |
\(\beta_{33}\) |
|
−0.503 | +/- 0.943 | 0.595 | |
\(\beta_{34}\) |
|
0.139 | +/- 0.433 | 0.748 | |
\(\beta_{44}\) |
|
0.529 | +/- 0.338 | 0.12 | |
| Observations : 140 | |||||
| \(R^2=\) 0.768 | |||||
| \(R^2_{adj}=\) 0.742 | |||||
7 Profit des producteurs
\[ \prod = (p_{Out} \cdot q_{Out}) - (v_{Cap} + v_{Lab} + v_{Mat}) \]
Code
profit <- apples |>
select(pOut, qOut, cost) |>
rowid_to_column() |>
mutate(profit = (pOut * qOut) - cost) |>
arrange(desc(profit)) |>
select(rowid, profit)
profit |>
gt() |>
cols_label(
rowid = md("$N$"),
profit = md("$\\prod$")
) |>
fmt_number(-rowid, suffixing = TRUE) |>
fmt_integer(rowid, pattern = "Producteur {x}") |>
cols_align("center") |>
tab_header(
title = md("**Profit des producteurs de pommes**"),
subtitle = md("*Des résultats très variables*")
) |>
tab_options(
table.background.color = bg_color
) |>
opt_interactive(use_highlight = TRUE)Code
min_profit <- profit |> filter(profit == min(profit))
max_profit <- profit |> filter(profit == max(profit))
mean_profit <- profit |> summarise(mean = mean(profit))
median_profit <- profit |> summarise(median = median(profit))8 Infos sur le sujet | ROADMAP
\(\Rightarrow\) Estimer des fonctions de cout, les rendements d’échelle, estimer somehow la leontieff généralisée, calculer le profit des producteurs, lien entre efficacité, vérifier hétéroscédasticité.
La translog ayant bcp plus de paramètres, ce ne sera pas forcément la bonne forme fonctionnelle !
Propriété de la CD => si la fonction de prod est cobb douglas, alors la fonction de coût l’est aussi.
DEUX CHOSES ESSENTIELLES
- Il faut estimer les substitutions entre facteurs
- Les rendements d’échelle
Regarder le \(\prod\)
8.1 Notes sur la translog Cost
On pourrait tt à fait estimer le système d’équations suivant :
Voir aussi la slide 78 sur la fonction \(\ln C\)
\[ \begin{cases} S_1 = \alpha_1 + \sum^3_{i=1} \beta_{1j}\ln p_j + \beta_{1y}\ln y\\ S_2 = \alpha_2 + \sum^3_{i=1} \beta_{2j}\ln p_j + \beta_{2y}\ln y\\ S_3 = \alpha_3 + \sum^3_{i=1} \beta_{3j}\ln p_j + \beta_{3y}\ln y \end{cases} \]
Inconvénients dans la translog et les formes flexibles :
Le nombre de paramètres explose à cause des effets croisés et risque important de collinéarité.
Quand on passe au système au tableau, on a augmenté à 3*140 données (420 observations) et on a un peu moins de paramètres
done 💅
Les références
Notes de bas de page
Grâce à cet argument, on restreint en fait les coefficients de tous les termes quadratiques et d’interaction à zéro, ce qui revient à estimer une fonction Cobb-Douglas.↩︎